1. Field of the Invention
The present invention is related to methods for storing data, in particular, to storing commonly shared data in a relational database.
2. Description of the Related Art
Safe and efficient storage of commonly accessible records in databases has been a concern throughout the era of the client-server systems. Typically, data records requiring separate access are stored together in a relational database. This minimizes database maintenance and update costs. For example, list of Internet service subscribers require limited access only by authorized users. In order to isolate these records, a special unique primary key data field is used for identifying subscriber records. Then, each data access request executed on the database is restricted by the primary key of the required record. Therefore, an unauthorized user or another subscriber cannot access or modify records of another subscriber in the database.
This conventional data management approach based on primary keys provides for security and integrity of data records stored in the database. However, this approach significantly limits functionality of a database system. In particular, if a physical client has a number of subscriptions, he will have to maintain copies of personal records for each subscription. Yet the personal records are common for each of the subscription and the tables of the database are filled with multiple instances of redundant data that is identified by a different primary key record.
In yet another example, a service provider needs to distribute some common data to all or part of the subscribers. This data is intended to be edited or modified by the subscribers (such as, for example, document templates). The service provider, using a conventional approach, would have to insert this data into an appropriate data segment of each of the subscribers' records.
This requires allocation of additional volume in the database. Additionally, the data (i.e., template) needs to be updated for each new version of a service, which requires analysis of individual subscriber records. In case of a document template, it needs to be determined if a subscriber has modified the sample template and the modified version needs to be saved. Otherwise the template record is updated by a new version for this subscriber. This creates a significant computational overhead that can be quite costly in the case of millions of records.
Accordingly, there is a need for a data storage method and system that can provide efficient storage of a common data without compromising its integrity.